<template>
  <div class="login-main">
  </div>
</template>

<script>
export default {
  name: 'login',
  data() {
    return {
      userType: '',
      ticket: '',
    };
  },
  // 路由钩子 解决二次回退失效的情况
  beforeRouteEnter(to,from,next){
    if(from.path == '/user-home' || from.path == '/legal-home'){
      window.ZWJSBridge.onReady(() => {
        window.ZWJSBridge.close({});
      });
    }
    else next();
  },
  mounted() {
    window.ZWJSBridge.onReady(() => {
      console.log('初始化完成后,执行bridge方法');
      this.init(); // 本地开发时注释
    });
  },
  methods: {
    // 初始化 获取ticket
    async init() {
      this.$toast.loading({
        message: '登录中...',
        forbidClick: true,
      });
      // 获取ssoTicket
      let url = window.location.href;
      if(window.ZWJSBridge.ssoTicket){
        const ssoFlag = await window.ZWJSBridge.ssoTicket({}); //浙里办提供的获取ticket方法 个人
        if(ssoFlag&& ssoFlag.result === true){
          //使用 IRS“浙里办”单点登录组件
          if(ssoFlag.ticketId){
            this.ticket = ssoFlag.ticketId;
          } else {
            //当“浙里办”单点登录失败或登录态失效时调用 ZWJSBridge.openLink 方法重新获取 ticketId。
            window.ZWJSBridge.openLink({ type: 'reload' }).then(res => {res.ticketId;});
          }
        }
      } else if (url.indexOf('ticketId=') != -1) { // 新版本
        this.ticket = url.split('ticketId=')[1].split('&')[0].split('#')[0];
      } else if (url.indexOf('ticket=') != -1) { // 旧版本
        this.ticket = url.split('ticket=')[1].split('&')[0].split('#')[0];
      }
      console.log(this.ticket, 'init------');
      // 获取样式类型
      window.ZWJSBridge.getUiStyle().then(result => {
        if (result.uiStyle === 'elder') { // elder ： 老年版
          console.log('老年版', result.uiStyle);
        } else { // normal: 常规版
          console.log('常规版', result.uiStyle);
        }
        sessionStorage.setItem('uiStyle', result.uiStyle);
      });
      // 单点登录
      this.zlbLoginNew();
    },
    // 浙里办登录 单点登录
    zlbLoginNew() {
      let query = {
        model: 'zlbUserLoginManager',
        method: 'unifiedLoginInterface',
        ticket: this.ticket,
      };
      this.$post(query).then(res => {
        console.log(res.data.data, '浙里办登录 获取用户信息');
        this.userInfo = res.data.data.userMap.data;
        sessionStorage.setItem('userInfo', JSON.stringify(this.userInfo));
        let str = `Bearer ${ res.data.data.tokenSign }`;
        sessionStorage.setItem('token', str);
        // 获取用户类型
        window.ZWJSBridge.getUserType().then(result => {
          console.log(result, 'usertype======================');
          if (result.userType == 2) {
            this.userType = '2'; // 法人
            sessionStorage.setItem('userType', 2);
          } else {
            this.userType = result.userType; // 个人
            sessionStorage.setItem('userType', 1);
          }
        });
        this.$buryingPoint();
        this.$router.push('/home');
      });
    },
    // 本地测试登录
    testLogin(name) {
      this.$toast.loading({
        message: '登录中...',
        forbidClick: true,
      });
      const params = {
        model:'basicCommonManager',
        method:'testLogin',
        username:name,
      };
      this.$post(params).then(res => {
        sessionStorage.setItem('token', res.data.data);
      }).catch(err => {
        console.error(err, '本地测试登录');
      });
    },
  }
};
</script>
<style lang="scss" scoped>
.login-main {
  width: 100%;
  height: 100vh;
  display: flex;
  justify-content: space-around;
  align-items: center;
  flex-direction: column;
}
</style>
